﻿using System;
using System.Configuration;
using SimpleFactoryPattern.MyChartFactory;
using SimpleFactoryPattern.ProductFactory;

namespace SimpleFactoryPattern
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello SimpleFactoryPattern!");

            {
                //农场生产水果例子
                Product product = Factory.GetProduct("A"); //通过工厂类创建对象
                product.MethodSame();
                product.MethodDiff();
            }

            {
                //工厂生产统计图例子
                Chart chart = ChartFactory.GetChart("Pie");
                chart.Display();
            }

            //扩展提示，以上的例子中，参数都可以通过配置文件方式获取
            { 
                //读取配置文件
                string chartStr = ConfigurationManager.AppSettings["factory"];
                Chart chart = ChartFactory.GetChart(chartStr); //静态工厂方法创建产品
                chart.Display();
            }
        }
    }
}
